Jx.declare('Jx.code.Symbol', {

	preProcessor: undefined,

	postProcessor: undefined,

	operation: undefined,

	name: undefined,

	nullFill: false,

	requireSymbolIndex: undefined,

	requireSymbols: undefined,

	priority: 0,

	constructor: function(){

		this.requireSymbolIndex = {};

		this.requireSymbols = [];

		this.$super( arguments );

	},

	onConstruct: function( operation, config ){

		this.operation = operation;

		if (config){

			Jx.assign( this, config );

		}

	},

	addRequireSymbol: function( name ){

		var index = this.requireSymbolIndex,

			names = this.requireSymbols;

		if (!( name in index )){

			index[name] = true;

			names[names.length] = name;

		}

	}

});
